package com.mju.service;

import com.mju.pojo.User;

// 用户模块业务层接口
public interface IUserService {
    /**
     * 用户注册
     * @param user 用户的数据对象
     */
    void registor(User user);

    /**
     * 用户登陆功能
     * @param username 用户名
     * @param password 密码
     * @return 将当前的用户数据，返回。
     */
    User login(String username, String password);

    /**
     * 修改密码功能
     * @param id
     * @param username
     * @param oldPassword
     * @param newPassword
     */
    void changePassword(Integer id,
                        String username,
                        String oldPassword,
                        String newPassword);

    /**
     * 个人资料——根据用户的id，获取用户信息
     * @param id 用户id
     * @return 返回用户数据
     */
    User getById(Integer id);

    /**
     * 个人资料-点击修改按钮的时候，更新数据
     * @param id 在控制层中，通过session获取
     * @param user 要将id传递给user然后返回回去。因为spirngboot只会收集表单的数据。
     */
    void changeInfo(Integer id, User user);

    /**
     * 修改用户的头像
     * @param id 用户id，控制层传过来。
     * @param avatar 用户头像的路径
     * @param username 用户名，控制层传过来。
     */
    void changeAvatar(Integer id,
                      String avatar,
                      String username);
}
